using System;
using System.Collections.Generic;
using System.Text;
using MindFactorial.LaunchPoint.Runtime;

namespace MindFactorial.LaunchPoint.Runtime
{
    /// <summary>
    /// 
    /// </summary>
    internal class RuntimeApplicationInstanceWrapper : RuntimeObject
    {
        string _name;
        AppDomain _appdomain;
        LaunchPointApplication _runnable;

        /// <summary>
        /// gets the name of RuntimeApplicationInstanceWrapper
        /// </summary>
        internal string Name
        {
            get { return _name; }
        }
        /// <summary>
        /// gets _appdomain 
        /// </summary>
        internal AppDomain ApplicationDomain
        {
            get { return _appdomain; }
        }

        /// <summary>
        ///  Gets IRunnable interface
        /// </summary>
        internal LaunchPointApplication Runnable
        {
            get { return _runnable; }
        }

        /// <summary>
        /// Constructor initializes the member variables of RuntimeApplicationInstanceWrapper
        /// </summary>
        /// <param name="name">Name</param>
        /// <param name="domain">Application Domain</param>
        /// <param name="runnable">Runnable Interface</param>
        internal RuntimeApplicationInstanceWrapper(string name, AppDomain domain, LaunchPointApplication runnable)
        {
            this._name = name;
            this._appdomain = domain;
            this._runnable = runnable;
        }
    }

}
